Traditional computerized spreadsheet systems have enjoyed great success, due primarily to their ability to automatically evaluate multiple mathematical formulas and display updated calculated values whenever user-entered data changes. Traditional spreadsheets employ a user interface for entering data and formulas into cells, combined with an underlying computation engine to support and perform operations on the data according to the formulas. A non-empty cell either contains a specific value entered by the user, or contains a computed value calculated using the formula in the cell. A formula in a cell is a single-valued function of other cells that assigns a unique value to the cell. The restriction to single-valued functions prevents ambiguities in calculated values. Circular references between formulas are not allowed, thus preventing inconsistencies from occurring. Thus, the propagation of values within the spreadsheet is one-way from cells containing specific user-entered data to computed cells containing formulas. For example, in the three-cell spreadsheet of FIG. 1, cells labeled A and B contain user-entered data, while cell C contains the formula C=A+B. The value of cell C is updated automatically based on the values of cells A and B. The user is not permitted to directly change the calculated value for cell C, nor is the spreadsheet permitted to change values in cells A and B. The propagation is thus one-way from cells A and B to cell C, and the distinction between calculated cells and cells containing user-entered values is explicitly determined by the placement of the formula in cell C. One can also observe that the formula C=A+B is a single-valued function which generates a unique value for C given values for A and B. Although these properties of traditional spreadsheets provide simplicity and enforce consistency, they do so at the cost of flexibility.
Another limitation of traditional spreadsheets is that the formulas are typically restricted to algebraic operators (e.g., +, −, ×, ÷, √, Σ) and logical connectives (e.g., , , ). While these have sufficient expressive power for many applications, they are not powerful enough to express the formulas desired for other applications.
In view of the widespread use of spreadsheets for many applications, it would be an improvement in the art to overcome these limitations and other limitations.